//Classes utilizadas para validação dos inputs
 $.validator.addClassRules({
   cend_tipo: {
	required: true
  },
	cend_rua: {
	minlength: 1,
	maxlength: 100,
	required: true
  },
	cend_selectMunicipio: {
	required: true
  }
}); 

/* jQuery.validator.setDefaults({
debug: true,
success: "valid"
});
$( "#frmItensSolicitacao" ).validate({
rules: {
cis_quantidade: {
required: true,
maxlength: 4
}
}
}); */

//Cria a variavel necessario para o datatable
var oTable;	
	
//Funcao para montar a tabela do Datatables sempre atualizada
function montaDatatable() {

	//Verifica e depois Destroi a tabela datatable
	//if (typeof oTable != 'undefined') {
		//$("#example").dataTable().fnDestroy();
	//}
	
	//Passa o valor do id para montar o Where
	var idEntidade =  $("#cend_fkEntidade").val();
		
	//alert(idEntidade);
	
	//Monta a tabela ja atualizada
	oTable = $('#example').dataTable( {
	    "aoColumnDefs": [
			{ "sWidth": "5%", "aTargets": [ 0 ], "bSortable": false },
			{ "sWidth": "35%", "aTargets": [ 1 ] },
			{ "sWidth": "10%", "aTargets": [ 2 ] },
			{ "sWidth": "20%", "aTargets": [ 3 ] },
			{ "sWidth": "15%", "aTargets": [ 4 ] },
			{ "sWidth": "10%", "aTargets": [ 5 ] },
			{ "sWidth": "5%", "aTargets": [ 6 ], "bSortable": false }
		],
		//"bInfo": false,
        "bProcessing": true,
        "bServerSide": true,
        "bDestroy": true,
        "sAjaxSource": "consEndereco.php",
		"oLanguage": {
			"sUrl": "js/dataTables_Brazilian.txt"
		},
		"fnServerParams": function ( aoData ) {
			aoData.push( { "name": "fk_idEntidade", "value": idEntidade } );
		}
    });
	
		$('#example tbody').on( 'click', 'tr', function () {
        if ( $(this).hasClass('selected') ) {
            $(this).removeClass('selected');
        }
        else {
            oTable.$('tr.selected').removeClass('selected');
            $(this).addClass('selected');
        }
    } );
}
	
$.validator.setDefaults({
	ignore: "",
	submitHandler: function( form ){  
		var dados = $(form).serialize();  
		$.ajax({  
			type: "POST",  
			url: "cadEndereco.php",  
			data: dados,  
			success: function( data )  
			{  
				$("#retornoEndereco").html(data);					

				//alert(document.getElementById('ok').value);
                                
				if ($("#ok").val() === 'ok'){
					document.getElementById("retornoEndereco").style.display = "block";                                    
					setTimeout(function hideElement() {
					document.getElementById("retornoEndereco").style.display = "none";
					}, 3000);
				} else {                                
				document.getElementById("retornoEndereco").style.display = "block";
				}
	
				if($("#controle").val() == 'gravar'){
					apagaForm();
					$("#cend_tipo").focus();					
					
					montaDatatable();
					
				} else if($("#controle").val() == 'atualizar'){
					$("#cend_tipo").focus();					
					if (data = 'Item atualizado com sucesso.') {
						setTimeout(function(){loadPageEndereco(12, $("#cend_fkEntidade").val());}, 2000);															
					}	
					//montaDatatable();
				}
			},
			statusCode: {
				404: function() {
				  $("#retornoEndereco").html('<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"> <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span> Página não Encontrada.</p> </div>');						  
				}
			}
		});  
		return false;  
	}			
});

function SomenteNumero(e){
	var tecla=(window.event)?event.keyCode:e.which;
	if((tecla>47 && tecla<58)) return true;
	else{
	if (tecla==8 || tecla==0) return true;
	else return false;
	}
}

//var oTable;
		
/* Formating function for row details */
function fnFormatDetails ( nTr )
{
	var aData = oTable.fnGetData( nTr );
	var sOut = '<table border="0" frame="box" style="width:100%">';
	sOut += '<tr><td width=10%> <b> Código: </b> </td> <td width=25%>'+aData[6]+'</td> <td width=10%> <b> Rua: </b> </td> <td width=55%>'+aData[1]+' ,N° '+aData[2]+'</td></tr>';
	sOut += '<tr><td> <b> Bairro: </b> </td> <td>'+aData[3]+'</td> <td> <b> Cidade: </b> </td> <td>'+aData[4]+'</td></tr>';
	sOut += '<tr><td> <b> Complemento: </b> </td> <td>'+aData[7]+'</td> <td> <b> CEP: </b> </td> <td>'+aData[9]+'</td></tr>';
	sOut += '<tr><td> <b> Tipo: </b> </td> <td>'+aData[8]+'</td> <td> <b> Telefone: </b> </td> <td>'+aData[5]+'</td></tr>';
	sOut += '</table>';
	
	return sOut;
}

function fnFormatDetailsErro ( nTr )
{
	var aData = oTable.fnGetData( nTr );
	var sOut = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;">';
	sOut += '<tr><td> <b> Código: </b> </td> <td>'+aData[6]+'</td> <td> <b> Descrição: </b> </td> <td>'+aData[1]+'</td> <td> <b> Quantidade: </b> </td> <td>'+aData[2]+'</td></tr>';	
	sOut += '<tr><td> <label style="color:red;"> <h3> Não foi possível realizar a operação desejada. </h3> </label> </td></tr>';
	sOut += '</table>';
	
	return sOut;
}

//Função para realizar a exclusão do Endereco		
function excluirEndereco(id) {	
//$('#excluir').live( 'click', function () {		
//$('#listaItens').on( 'click', '#excluir', function () {		
	var r=confirm("Deseja realmente excluir esse Endereço?");
	if (r===true) {		
		//var nTr = this.parentNode.parentNode;

		//var aData = oTable.fnGetData( nTr );
		
		//var dados = 'id='+aData[10];			
		var dados = 'id='+id;			
		//alert(dados);
		
		$.ajax({  
			type: "POST",  
			url: "excluirEndereco.php",  
			data: dados,  
			success: function( data )  
			{  
			//alert(data);
				if (data == 'Não foi possível excluir.') {					
					//oTable.fnOpen( nTr, fnFormatDetailsErro(nTr), 'details' );
					$("#retornoEndereco").html('<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"> <p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>' + data + '</p> </div>');
				} else {
					//oTable.fnClose( nTr );						
					montaDatatable();
				}					
			},
			statusCode: {
				404: function() {
					alert('Página não Encontrada.');						  
				}
			}
		});  
		return false; 			
	} else { 		
	return false;
	}		
};

//Função utilizada para montar a mascara com 10 ou 11 digitos no Telefone
jQuery.fn.brTelMask = function() {
 
    return this.each(function(){
        var el = this;
        $(el).focus(function(){
            $(el).mask("(99) 9999-9999?9");
        });
 
        $(el).focusout(function(){
           var phone, element;
           element = $(el);
           element.unmask();
           phone = element.val().replace(/\D/g, '');
           if(phone.length > 10){
               element.mask("(99) 99999-999?9");
           }else{
               element.mask("(99) 9999-9999?9");
           }
        });
    });
}

$(document).ready(function(){
	//Mascara
	$("#cend_cep").mask("99.999-999");
	
	//Chama a função de identificação e correção
	$("#cend_telefone").brTelMask();	
			
	//Tratamento de erros enviando para exibição na div container
	var container = $('div.container');
	var validator = $("#frmEndereco").validate({
			errorContainer: container,
			errorLabelContainer: $("ol", container),
			wrapper: 'li'
		});	
	
	montaDatatable();	
	
	
	//$('#detalhes').live( 'click', function () {	
	$('#listaEnderecos').on( 'click', '#detalhes', function () {	
	//$('#example tbody td img').live( 'click', function () {
		var nTr = $(this).parents('tr')[0];
		if ( oTable.fnIsOpen(nTr) )
		{
			/* This row is already open - close it */
			this.src = "images/details_open.png";
			oTable.fnClose( nTr );
		}
		else
		{
			/* Open this row */
			this.src = "images/details_close.png";
			oTable.fnOpen( nTr, fnFormatDetails(nTr), 'details' );
		}
	} );
		
	//Fecha o document ready
});
